C++ this 指针

在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。

友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针

下面的实例有助于更好地理解 this 指针的概念:

      #include <iostream>

      using namespace std;

      class Box
      {
         public:
            // 构造函数定义
            Box(double l=2.0, double b=2.0, double h=2.0)
            {
               cout <<"Constructor called." << endl;
               length = l;
               breadth = b;
               height = h;
            }
            double Volume()
            {
               return length * breadth * height;
            }
            int compare(Box box)
            {
               return this->Volume() > box.Volume();
            }
         private:
            double length;     // Length of a box
            double breadth;    // Breadth of a box
            double height;     // Height of a box
      };

      int main(void)
      {
         Box Box1(3.3, 1.2, 1.5);    // Declare box1
         Box Box2(8.5, 6.0, 2.0);    // Declare box2

         if(Box1.compare(Box2))
         {
            cout << "Box2 is smaller than Box1" <<endl;
         }
         else
         {
            cout << "Box2 is equal to or larger than Box1" <<endl;
         }
         return 0;
      }

当上面的代码被编译和执行时,它会产生下列结果:

      Constructor called.
      Constructor called.
      Box2 is equal to or larger than Box1

🔚